package spring.cloud.tasks.executor.task;


import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import spring.cloud.tasks.executor.api.ReturnCode;
import spring.cloud.tasks.executor.api.TaskExecuteResultGroup;

import java.util.Map;

/**
 * 作为作业执行的返回, 每个分片对应一个SaturnJobReturn对象
 */
@Slf4j
@Setter
@Getter
public class TaskItemExecuteResult {

    /**
     * Job执行返回值, 默认0。
     */
    private int returnCode = ReturnCode.SUCCESS;

    /**
     * Job执行返回字符串信息
     */
    private String returnMsg;

    /**
     * 异常组，默认200
     */
    private int errorGroup = TaskExecuteResultGroup.SUCCESS;

    /**
     * 返回的属性，消息服务的作业会将该属性设置到发送的Channel中
     */
    private Map<String, String> prop;

    /**
     * returnCode默认0（成功），errorGroup默认200（成功）。
     *
     * @see ReturnCode
     * @see TaskExecuteResultGroup
     */
    public TaskItemExecuteResult() {
    }


    public TaskItemExecuteResult(int returnCode, String returnMsg, int errorGroup) {
        this.returnCode = returnCode;
        this.returnMsg = returnMsg;
        this.errorGroup = errorGroup;
    }

}
